#include "process.h"
#include<string.h>
#include<unistd.h>

#define NUM 101
#define STYLE '='

//version2
void FlushProcess(double total,double current)
{
  char buffer[NUM];
  memset(buffer,0,sizeof(buffer));
  const char* label="|/-\\";
  int len=strlen(label);

  static int cnt=0;

  //不需要自己循环了，只需填充=
  int num=(int)(current*100/total);//11.0/1000 需要算出%前的那个数
  //当到一个数量级的时候才填充
  for(int i=0;i<num;i++)
  {
    buffer[i]=STYLE;
  }
  double rate =current/total;//真实比率
  printf("加载ing...[\033[44m%-100s\033[0m]][%.1f%%][%c]\r",buffer,rate*100,label[cnt%len]);
  cnt++;
  fflush(stdout);
}
//version1
void process_v1()
{
  char buffer[NUM];
  memset(buffer,0,sizeof(buffer));
  const char* label="|/-\\";
  int len=strlen(label);

  int cnt=0;
  while(cnt<=100)
  {
    printf("[%-100s][%d%%][%c]\r",buffer,cnt,label[cnt%len]);
    fflush(stdout);
    buffer[cnt]=STYLE;
    cnt++;
    usleep(50000);
  }
  printf("\n");
}

